Altri articoli sul numero 84 Articoli sullo stesso argomento Sergio La Rosa ha richiesto informazioni sul funzionamento delle schede grafiche per Amiga e sui loro limiti, perche' prima dell'acquisto vorrebbe comprendere quali sono i pregi e limiti dovuti alla scheda e quali sono imposti dall'architettura di Amiga. La principale differenza tra il modo di gestire il video di una scheda grafica e quello dei chip custom di Amiga e' che la scheda grafica e' priva di meccanismi di interrupt collegati al generatore di raster, di conseguenza non esiste il Copper e non e' possibile scrivere routine dipendenti dal raggiungimento di una certa posizione da parte del pennello elettronico. Nelle schede oggi in commercio la memoria installata ha l'identica funzione della Chip RAM di Amiga. Ma l'architettura di Amiga la fa apparire ad indirizzi corrispondenti alla Fast RAM, e per questo motivo puo' essere letta o scritta esclusivamente dalla CPU: i chip custom di Amiga non la possono raggiungere. Cio' ha implicazioni negative che sarebbero troppo lunghe da dettagliare in questa sede; purtroppo il limite puo' essere superato solo da motherboard di nuova concezione. Questo e' dimostrato anche dall'unico computer Amiga compatibile gia' in commercio (DraCo), che pur adottando una soluzione rozza e ampiamente migliorabile garantisce prestazioni e compatibilita' piu' alte rispetto ai sistemi di schede video per gli Amiga standard. Per ora ci basta sapere che dal punto di vista hardware una scheda video appare come due risorse autoconfiguranti: un'espansione di memoria Fast e un banco di registri di 64k. Un Amiga espanso deve avere abbastanza risorse Zorro 2 o Zorro 3 libere per accoglierle entrambe, altrimenti il software di gestione non puo' funzionare. Mancando un sistema di interrupt, il chip grafico contiene opportuni meccanismi hardware per evitare che durante l'aggiornamento della memoria grafica appaiano disturbi sul video; nei chip piu' limitati si tratta banalmente di un blocco all'accesso, che in alcune circostanze rallenta il sistema e causa errori durante il trasferimento di dati con la porta seriale. I chip grafici possono essere realizzati in molti modi diversi, ma ultimamente si usano di solito chip Super VGA prodotti da societa' specializzate, ad esempio la S3. Questi dispositivi supportano un numero elevato di modi grafici, che si distinguono per il modo in cui vengono interpretati i dati in memoria. Il software a corredo si limita a pilotare quelli piu' adatti alla sua logica di funzionamento. Di solito abbiamo modi "chunky pixel" a 256 colori, modi diretti a 32000 colori e 65000 colori, e un modo "true color" senza palette a 16 milioni di colori. Non bisogna confondere la selezione del modo video con la risoluzione che, come nei chip Amiga, e' impostata separamente e riguarda solo il circuito generatore dei sincronismi. Il modo a 16 milioni di colori e' il piu' semplice: i valori a 8 bit contenuti in byte adiacenti della memoria vengono mandati direttamente ai tre convertitori D/A della scheda, che generano i colori rosso, verde e blu. Di conseguenza le immagini TIFF e IFF24 sono visualizzate senza alcuna distorsione, superando i limiti dell'HAM8. Il numero 16 milioni scaturisce da un puro computo matematico delle permutazioni di valori possibili con tre componenti ad 8 bit ciascuna. In realta' nessun monitor convenzionale li puo' visualizzare tutti, esattamente come l'altoparlantino di un TV portatile non puo' riprodurre perfettamente una registrazione stereofonica HI-FI. Cio' non da' fastidio perche', a differenza dell'orecchio, l'occhio umano non e' esigente e non prova fastidio osservando una riproduzione a colori non precisamente naturali. Nel modo a 256 colori ogni byte della memoria video e' come un numero di catalogo di un produttore di vernici; il chip contiene un circuito che per ogni byte in arrivo visualizza un pixel di colore corrispondente. La tavola di corrispondenza (palette) del chip SVGA e' programmabile, ma con un limite: ogni componente fondamentale di colore e' codificata su soli 6 bit, per cui sono disponibili complessibamente solo 262000 colori circa, e non la piena gamma di 16 milioni. Uno schermo Amiga a 256 colori quando viene promosso sulla scheda video avra' quindi colori lievemente falsati. I modi a 32000 e 65000 colori sono una variante del modo a 16 milioni, malamente arrangiata per risparmiare memoria conservando compatibilita' con alcuni standard del mondo DOS. Ogni pixel corrisponde a 2 byte consecutivi, i cui bit vengono suddivisi in modo da pilotare direttamente i bit piu' significativi dei convertitori RGB: 6 ( o 5) bit per il rosso, 5 per il verde e 5 per il blu. La quantita' di colori disponibile e' quindi ancora minore rispetto al modo HAM8 e a quelli a 256 colori, con forti distorsioni degli sfumati. Tecnicamente, il modo HAM8 e' un modo true color a 24 bit con compressione; cioe' viene visualizzato come un 24 bit ma occupa un terzo della memoria. A causa della compressione si creano dei vincoli tra pixel adiacenti che riducono il numero di colori contemporaneamente visualizzabili; la decompressione e' effettuata via hardware da Lisa. L'unico altro chip grafico che implementa il modo HAM8 e' stato introdotto un anno fa da Hewlett Packard e viene usato sui modelli piu' piccoli delle stazioni grafiche RISC. Rispetto al chip set AGA, contiene anche un circuito per codificare in HAM8 i dati RGB a 24 bit di partenza e viceversa. In questo modo, accedendo alla memoria grafica in modo opportuno, il software ha la perfetta illusione di interagire con una scheda a 24 bit. L'utilizzo di un chip SuperVGA nell'ambiente Amiga crea due complicazioni. La prima, che penalizza solo le prestazioni, riguarda l'ordine con cui i byte devono essere disposti nella memoria video della scheda: e' molto diverso da quello che permetterebbe l'ottimale sfruttamento del bus da parte delle CPU Motorola e obbliga all'esecuzione di complicate routine di "assestamento" dei pixel in molti aggiornamenti del video. La seconda complicazione riguarda l'implementazione degli schermi multipli. Anche i chip SuperVGA permettono di avere schermi diversi parzialmente sovrapposti, ma le possibilita' sono piu' limitate di quelle offerte dal chip set Amiga. Per questo motivo, e per risolvere altri problemi di compatibilita', il software di gestione (ad esempio la picasso.library) deve ricorrere a trucchi dove non arriva l'hardware. La soluzione adottata di solito consiste nel gestire copie di riserva del contenuto della memoria video in Chip RAM o Fast RAM, che vengono copiate dalla CPU nella scheda video quando occorre. E' per questo motivo che installando una scheda video la quantita' di memoria Chip o Fast disponibile cala vistosamente. Ad entrambi i problemi si puo' facilmente porre rimedio apportando le opportune correzioni all'architettura di Amiga dei modelli futuri; in particolare la tecnologia PowerPC offre soluzioni gia' pronte e sperimentate che lasciano prevedere miglioramenti del sottosistama video anche di un ordine di grandezza rispetto alle attuali schede grafiche convenzionali.